package com.example.animal;

import java.time.LocalDate;

/**
 * 哺乳动物类，继承自动物类，添加哺乳动物特有的特征
 */
public class Mammal extends Animal {
    private boolean isViviparous; // 是否胎生

    /**
     * 构造函数
     * @param name 动物名称
     * @param speciesName 物种名称
     * @param birthDate 出生日期
     * @param color 颜色
     * @param weight 体重
     * @param gender 性别
     * @param temperatureType 体温类型
     * @param isViviparous 是否胎生
     */
    public Mammal(String name, String speciesName, LocalDate birthDate, 
                 String color, double weight, Gender gender, TemperatureRegulation temperatureType,
                 boolean isViviparous) {
        super(name, speciesName, birthDate, color, weight, gender, temperatureType);
        this.isViviparous = isViviparous;
    }

    @Override
    public void breathe() {
        System.out.println(name + " " + speciesName + "用肺呼吸");
    }

    @Override
    public void eat() {
        System.out.println(name + " " + speciesName + "进食");
    }

    /**
     * 哺乳动物特有行为：用乳汁哺育后代
     */
    public void nurseYoung() {
        System.out.println("用乳汁哺育后代");
    }

    /**
     * 判断是否为胎生
     * @return 如果是胎生返回true，否则返回false
     */
    public boolean isViviparous() {
        return isViviparous;
    }
}
